  :root{
    --ink:#241C15;
    --cream:#FAF3E7;
    --cream-2:#F2E9D8;
    --crimson:#D94B38;
    --crimson-dark:#000;
    --marigold:#C9982B;
    --marigold-light:#E8C874;
    --slate:#1B3358;
    --line:#E1D4B8;
    --danger: #D94B38;
    --ok:#4B6B4E;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    /* background:var(--cream); */
    color:var(--ink);
    font-family:'Inter',sans-serif;
    min-height:100vh;
    /* padding:32px 16px 80px; */
    font-size:15px;
  }
  .wrap{max-width:760px;margin:0 auto;}

  /* Header / masthead */
  .masthead{
    text-align:center;
    padding:28px 20px 22px;
    position:relative;
  }
  .seal{
    width:76px;height:76px;margin:0 auto 14px;
    border-radius:50%;
    border:2.5px solid var(--marigold);
    display:flex;align-items:center;justify-content:center;
    position:relative;
    background:var(--cream);
  }
  .seal::before{
    content:"";
    position:absolute;inset:6px;
    border:1px solid var(--crimson);
    border-radius:50%;
  }
  .seal-mark{
    font-family:'Fraunces',serif;
    font-weight:700;
    font-size:22px;    color:var(--crimson);
    letter-spacing:0.5px;
  }
  .brand-logo{
    width:120px;height:auto;margin:0 auto 16px;display:block;
  }
  @media(max-width:600px){.brand-logo{width:96px;}}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:2.5px;
    text-transform:uppercase;
    color:var(--crimson);
    margin:0 0 6px;
  }
  h1.title{
    font-family:'Fraunces',serif;
    font-weight:700;
    font-size:clamp(28px,5vw,40px);
    margin:0 0 6px;
    color:var(--ink);
  }
  .subtitle{
    font-style:italic;
    font-family:'Fraunces',serif;
    font-size:16px;
    color:#5b4f3f;
    margin:0 0 14px;
  }
  .window-pill{
    display:inline-flex;gap:8px;align-items:center;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    background:var(--ink);
    color:var(--cream);
    padding:7px 14px;
    border-radius:20px;
  }
  .window-pill b{color:var(--marigold-light);font-weight:600;}

  /* Garland divider — signature element */
  .garland{
    display:flex;justify-content:center;align-items:center;
    margin:22px 0 8px;
    opacity:0.9;
  }
  .garland svg{display:block;}

  /* Card */
  .card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 1px 2px rgba(36,28,21,0.04), 0 8px 24px -12px rgba(36,28,21,0.12);
    padding:30px 30px 26px;
    margin-bottom:16px;
  }
  .card.intro-card p{line-height:1.65;color:#443a2c;font-size:14.5px;}
  .cat-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    margin-top:14px;
  }
  @media(max-width:600px){.cat-grid{grid-template-columns:1fr;}}
  .cat-item{
    border:1px solid var(--line);
    border-radius:10px;
    padding:10px 12px;
    font-size:13px;
    background:var(--cream-2);
  }
  .cat-item b{
    display:block;font-family:'Fraunces',serif;font-size:14.5px;color:var(--crimson-dark);
    margin-bottom:2px;
  }
  .cat-item span{color:#5b4f3f;font-size:12.5px;}

  .elig-list{margin:10px 0 0;padding-left:18px;color:#443a2c;font-size:13.5px;line-height:1.7;}

  /* Progress */
  .progress-wrap{
    position:sticky;top:0;z-index:20;
    background:var(--cream);
    padding:10px 0 14px;
  }
  .progress-track{
    height:6px;background:var(--cream-2);border-radius:6px;overflow:hidden;
    border:1px solid var(--line);
  }
  .progress-fill{
    height:100%;
    background:linear-gradient(90deg,var(--crimson),var(--marigold));
    width:0%;
    transition:width .35s ease;
  }
  .progress-label{
    display:flex;justify-content:space-between;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;color:#7a6c54;margin-top:6px;
  }

  /* Section header inside card */
  .section-tag{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;letter-spacing:2px;text-transform:uppercase;
    color:var(--marigold);
    margin:0 0 4px;
  }
  h2.section-title{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:23px;
    margin:0 0 4px;
    color:var(--ink);
  }
  .section-desc{
    font-size:13.5px;color:#7a6c54;margin:0 0 20px;line-height:1.55;
  }
  .section-desc.important{
    color:var(--crimson-dark);background:#FBEDEE;border-left:3px solid var(--crimson);
    padding:10px 12px;border-radius:0 6px 6px 0;
  }

  /* Fields */
  .field{margin-bottom:20px;}
  .field label.q{
    display:block;font-size:14.5px;font-weight:600;margin-bottom:3px;color:var(--ink);
  }
  .field .hint{font-size:12px;color:#8a7c62;margin-bottom:8px;font-style:italic;}
  .field input[type=text], .field input[type=email], .field input[type=tel],
  .field input[type=number], .field input[type=date], .field textarea, .field select{
    width:100% ;
    font-family:'Inter',sans-serif;
    font-size:15px;
    padding:11px 13px;
    border:1.5px solid var(--line);
    border-radius:8px;
    background:#FEFCF8;
    color:var(--ink);
    transition:border-color .15s, box-shadow .15s;
  }
  .field textarea{resize:vertical;min-height:70px;}
  .field input:focus, .field textarea:focus, .field select:focus{
    outline:none;border-color:var(--crimson);
    box-shadow:0 0 0 3px rgba(166,25,46,0.12);
  }
  .req{color:var(--crimson);margin-left:3px;}

  .radio-group, .checkbox-group{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
  .radio-opt, .check-opt{
    display:flex;align-items:flex-start;gap:10px;
    border:1.5px solid var(--line);border-radius:8px;
    padding:10px 12px;cursor:pointer;font-size:13.8px;
    transition:border-color .15s, background .15s;
    background:#FEFCF8;
  }
  .radio-opt:hover, .check-opt:hover{border-color:var(--marigold);}
  .radio-opt input, .check-opt input{margin-top:2px;accent-color:var(--crimson);flex-shrink:0;}
  .radio-opt.selected, .check-opt.selected{border-color:var(--crimson);background:#FBEDEE;}

  .radio-group.cat-grid-select{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
  }
  @media(max-width:600px){.radio-group.cat-grid-select{grid-template-columns:1fr;}}
  .cat-radio-opt{align-items:center;}
  .cat-radio-opt b{font-family:'Fraunces',serif;font-size:14.5px;color:var(--crimson-dark);}
  .cat-radio-opt .cat-sub{color:#5b4f3f;font-size:12.5px;}

  .conditional-wrap{
    border-left:3px solid var(--marigold);
    padding-left:14px;margin:-6px 0 20px;
  }
  fieldset{border:none;padding:0;margin:0;}
  legend{padding:0;}

  .achievement-block, .ref-block, .award-block{
    border:1px solid var(--line);border-radius:10px;padding:16px 16px 4px;
    margin-bottom:14px;background:var(--cream-2);
  }
  .achievement-block h4, .ref-block h4, .award-block h4{
    font-family:'Fraunces',serif;font-size:15px;margin:0 0 12px;color:var(--crimson-dark);
    display:flex;justify-content:space-between;align-items:center;
  }
  .remove-btn{
    font-family:'IBM Plex Mono',monospace;font-size:11px;color:#8a7c62;
    background:none;border:1px solid var(--line);border-radius:6px;padding:3px 8px;cursor:pointer;
  }
  .remove-btn:hover{border-color:var(--crimson);color:var(--crimson);}
  .add-btn{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--crimson);
    background:#FBEDEE;border:1px dashed var(--crimson);border-radius:8px;
    padding:9px 14px;cursor:pointer;width:100%;margin-top:2px;
  }
  .add-btn:hover{background:#F6DBDD;}

  .file-row{
    display:flex;justify-content:space-between;align-items:center;gap:14px;
    border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px;
    background:#FEFCF8;
  }
  .file-row .fmeta{font-size:13px;}
  .file-row .fmeta b{display:block;font-size:13.5px;}
  .file-row .fmeta span{color:#8a7c62;font-size:11.5px;}
  .file-row .badge{
    font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;
    padding:3px 8px;border-radius:12px;flex-shrink:0;
  }
  .badge.mandatory{background:#FBEDEE;color:var(--crimson);}
  .badge.recommended{background:#FFF4DC;color:#8a6a12;}
  .badge.optional{background:#EAF0EA;color:var(--ok);}
  .file-row input[type=file]{font-size:12px;max-width:180px;}

  /* Buttons / nav */
  .nav-row{display:flex;justify-content:space-between;gap:10px;margin-top:6px;}
  button.nav-btn{
    font-family:'Inter',sans-serif;font-weight:600;font-size:14px;
    padding:12px 22px;border-radius:9px;border:none;cursor:pointer;
    transition:transform .1s, opacity .15s;
  }
  button.nav-btn:active{transform:scale(0.98);}
  .btn-primary{background:var(--crimson);color:#fff;}
  .btn-primary:hover{background:var(--crimson-dark);}
  .btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line) !important;}
  .btn-ghost:hover{border-color:var(--ink) !important;}
  .btn-primary:disabled{opacity:0.45;cursor:not-allowed;}

  .step-hidden{display:none;}

  .error-msg{color:var(--crimson);font-size:12px;margin-top:5px;display:none;}
  .field.invalid input, .field.invalid textarea{border-color:var(--crimson);}
  .field.invalid .error-msg{display:block;}

  /* Review page */
  .review-item{border-bottom:1px dashed var(--line);padding:9px 0;font-size:13px;}
  .review-item b{display:block;font-size:12px;color:#8a7c62;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px;}

  .timeline{list-style:none;margin:12px 0 0;padding:0;}
  .timeline li{
    display:flex;gap:12px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--cream-2);
  }
  .timeline li .tdate{font-family:'IBM Plex Mono',monospace;color:var(--crimson);min-width:150px;flex-shrink:0;font-size:12px;}

  .weight-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;}
  .weight-table td, .weight-table th{padding:7px 8px;border-bottom:1px solid var(--cream-2);text-align:left;}
  .weight-table th{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;color:#8a7c62;}
  .weight-table td:last-child, .weight-table th:last-child{text-align:right;font-family:'IBM Plex Mono',monospace;}
  .weight-table tr.total td{font-weight:700;color:var(--crimson-dark);}

  .success-screen{text-align:center;padding:50px 20px;}
  .success-screen .seal{margin-bottom:18px;}
  .success-screen h2{font-family:'Fraunces',serif;font-size:26px;margin:0 0 8px;}
  .success-screen p{color:#5b4f3f;font-size:14px;max-width:440px;margin:0 auto 18px;line-height:1.6;}

  footer.note{
    text-align:center;font-size:11.5px;color:#9c8f76;margin-top:20px;line-height:1.7;
  }
/*==========================================
  CONTACT DETAILS
==========================================*/

.contact-box{
    background:#db604f;
    /* border:1px solid var(--line); */
    border-radius:14px;
    padding:30px;
    margin-top:25px;
}

.contact-title{
    text-align:center;
    font-family:'Fraunces',serif;
    font-size:32px;
    font-weight:700;
    color:#fff;
    margin-bottom:15px;
}

.contact-title i{
    color:#fff;
    margin-right:8px;
}

.contact-desc{
    text-align:center;
    color:#fff;
    font-size:16px;
    margin-bottom:30px;
}

.contact-item{
     display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
    flex-wrap:wrap;
}

.contact-heading{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:0;
    min-width:180px;
    color:#fff;
    font-size:18px;
    font-weight:700;
}

.contact-heading i{
    font-size:18px;
}

.contact-value{
    padding-left:0;
    color:#fff;
    font-size:17px;
}

.contact-value a{
    color:#fff;
    text-decoration:none;
}

.contact-value a:hover{
    text-decoration:underline;
}

.contact-box hr{
    margin:30px 0 20px;
    border-color:var(--line);
}

.contact-footer{
    text-align:center;
    font-size:22px;
    font-weight:700;
    font-family:'Fraunces',serif;
    color:#fff;
    margin:0;
}

/* Icon Colors */

.icon-person{
    color:#fff;
}

.icon-phone{
    color:#fff;
}

.icon-email{
    color:#fff;
}

.icon-web{
    color:#fff;
}

/* Responsive */

@media (max-width:991px){

    .contact-title{
        font-size:28px;
    }

    .contact-heading{
        font-size:17px;
    }

    .contact-value{
        font-size:15px;
    }
}

@media (max-width:767px){

    .contact-box{
        padding:20px;
    }

    .contact-title{
        font-size:24px;
    }

    .contact-desc{
        text-align:left;
    }

    .contact-item{
        margin-bottom:20px;
    }

    .contact-footer{
        font-size:18px;
    }
}